﻿namespace Steamworks
{
    using System;
    using System.Runtime.InteropServices;

    [StructLayout(LayoutKind.Sequential)]
    public struct HServerListRequest : IEquatable<HServerListRequest>
    {
        public static readonly HServerListRequest Invalid;
        public IntPtr m_HServerListRequest;
        public HServerListRequest(IntPtr value)
        {
            this.m_HServerListRequest = value;
        }

        static HServerListRequest()
        {
            Invalid = new HServerListRequest(IntPtr.Zero);
        }

        public override string ToString()
        {
            return this.m_HServerListRequest.ToString();
        }

        public override bool Equals(object other)
        {
            return ((other is HServerListRequest) && (this == ((HServerListRequest) other)));
        }

        public override int GetHashCode()
        {
            return this.m_HServerListRequest.GetHashCode();
        }

        public bool Equals(HServerListRequest other)
        {
            return (this.m_HServerListRequest == other.m_HServerListRequest);
        }

        public static bool operator ==(HServerListRequest x, HServerListRequest y)
        {
            return (x.m_HServerListRequest == y.m_HServerListRequest);
        }

        public static bool operator !=(HServerListRequest x, HServerListRequest y)
        {
            return !(x == y);
        }

        public static explicit operator HServerListRequest(IntPtr value)
        {
            return new HServerListRequest(value);
        }

        public static explicit operator IntPtr(HServerListRequest that)
        {
            return that.m_HServerListRequest;
        }
    }
}

